def get(x):
    if x == fa[x]: return x
    fa[x] = get(fa[x])
    return fa[x]

def merge(x, y):
    x = get(x)
    y = get(y)
    if x != y:
        fa[x] = y
        sz[y] += sz[x]
    return max(sz[x], sz[y])

n = int(input())
fa = [i for i in range(n * 2 + 1)]
sz = [1 for i in range(n * 2 + 1)]
l, d = 0, {}
for i in range(n):
    a, b = input().split()
    x, y = d.get(a), d.get(b)
    if not x:
        l += 1
        d[a] = l
        x = l
    if not y:
        l += 1
        d[b] = l
        y = l
    print(merge(x, y))
# -------------------------------------------------------------------------------

# 比赛环境为python3.8.6版本自带的IDLE，最好早点熟悉一下。。这个东西的提示时有时无

# 菜单栏最右边的Help的Python Docs 比赛时候也可以看，不过建议还是提前多了解了解，

# 比赛的时候至少知道在文档找什么能用的上。

# IDLE是下载Python时自带的，在按住win+s搜索IDLE就能搜到了。

# 然后点左上角的File可以创建新文件，然后按F5可以运行。
